Gesekan dasar dalam fisika komputasi muncul karena komputer merepresentasikan angka nyata menggunakan matematika titik mengambang biner. Berbeda dengan pemikiran manusia yang menggunakan basis-10 (desimal), perangkat keras menyimpan nilai dalam basis-2 (biner). Hal ini menghasilkan sebuah abstraksi bocor: pecahan desimal sederhana seperti 0,1 tidak dapat direpresentasikan secara tepat.
1. Realitas Titik Mengambang
Go menyediakan dua tipe utama untuk angka nyata: float32 dan float64. Saat menggunakan sintaks deklarasi variabel pendek seperti price := 0,0, Go secara default menggunakan float64. Tipe-tipe ini adalah pendekatan dari kenyataan, bukan nilai matematis yang eksak.
2. Misteri Angka 0,1
Dalam basis-10, $1/3$ menghasilkan desimal berulang tak hingga ($0,333...$). Dalam basis-2, nilai $0,1$ menghasilkan pecahan berulang tak hingga. Karena memori komputer terbatas, pecahan ini dipotong, mengakibatkan kesalahan kumulatif. Misalnya, $0,1 + 0,2$ menghasilkan $0,30000000000000004$ alih-alih tepat $0,3$.
Peringatan: Jangan pernah gunakan == untuk membandingkan angka titik mengambang di gerbang logika, karena ketidaksesuaian mikroskopis ini akan menyebabkan perbandingan gagal.